package tt.com.warehousemanager.service;

import com.baomidou.mybatisplus.extension.service.IService;
import tt.com.common.model.YxCommonPurchase;
import tt.com.common.util.AuditUtil;
import tt.com.common.util.PageUtil;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author Czycka
 * @date 2022/8/19 15:52
 * @description 采购信息接口
 */
public interface PurchaseService extends IService<YxCommonPurchase> {

    /**
     * 新增物品采购信息
     *
     * @param purchase     采购信息实体类
     * @param createUserId 添加人id
     * @return 受影响行数
     */
    Integer insertPurchase(YxCommonPurchase purchase, String createUserId);

    /**
     * 根据id删除物品采购信息
     *
     * @param id           需要删除的采购信息id
     * @param deleteUserId 删除人id
     * @return 数据不存在返回 -1 数据已被删除返回 -2
     */
    Integer deletePurchase(Long id, String deleteUserId);

    /**
     * 修改采购采购信息
     *
     * @param purchase     修改后的物品实体类
     * @param updateUserId 修改人id
     * @return 修改结果
     */
    Integer updatePurchase(YxCommonPurchase purchase, String updateUserId);

    /**
     * 按分页展示物品采购信息
     *
     * @param page 当前页和每页数量
     * @return 分页后的数据
     */
    PageUtil showPurchaseByPage(PageUtil page);

    /**
     * 审核
     *
     * @param auditUtil 审核
     * @return 审核结果
     */
    Integer auditing(AuditUtil auditUtil);

    /**
     * 查询当天采购金额
     *
     * @return 采购金额
     */
    BigDecimal showCostByToday();

    /**
     * 查询本周的采购金额
     *
     * @return 采购金额
     */
    BigDecimal showCostByWeek();

    /**
     * 查询本月采购金额
     *
     * @return 采购金额
     */
    BigDecimal showCostByMonth();

    /**
     * 查询今年采购金额
     * @return 采购金额
     */
    BigDecimal showCostByYear();
}
